package com.rejuvee.myloginapplication.data;

import android.util.Log;

import com.rejuvee.myloginapplication.data.model.LoggedInUser;

import java.io.IOException;

/**
 * 远程数据源
 * <p>
 * (可以是本地数据库，一般为远程数据源)
 */
public class LoginDataSource {

    /**
     * 调用网络进行登录
     *
     * @param username 账号
     * @param password 密码
     * @return
     */
    public Result<LoggedInUser> login(String username, String password) {
        try {
            Log.i("调用网络进行登录... ", username + ":" + password);
            // 如果密码不为111111，判断登陆失败
            if (!password.equals("111111")) {
                // TODO: 应该把用户名+密码传送到网络进行登录判断
                return new Result.Error<>(new IOException("password error"));
            } else {
                //  这里为了演示简便，随机生成了一个用户，模拟网络返回的结果
                LoggedInUser fakeUser =
                        new LoggedInUser(java.util.UUID.randomUUID().toString(),
                                "Jane Doe", 20);
                // 返回远程调用成功
                return new Result.Success<>(fakeUser);
            }
        } catch (Exception e) {
            // 返回远程调用失败
            return new Result.Error<>(new IOException("Error logging in", e));
        }
    }

    /**
     * 调用网络进行登出
     */
    public void logout() {
        // TODO: 应该调用网络服务器进行登出
    }
}